﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Net;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace FrontEndPlus.Módulos.RRHH
{
    public partial class wbfrm_Marcas : System.Web.UI.Page
    {
        #region Variables

        private WCF_Gimnasio.ServiceClient _servicio = new WCF_Gimnasio.ServiceClient();

        #endregion

        #region Metodos

        private bool GetIPAddress()
        {
            bool rpta = false;

            IPSegment IPSegment = new IPSegment("172.17.0.1", "255.255.255.0");

            IPHostEntry IPEntry = Dns.GetHostEntry(Dns.GetHostName());
            IPAddress[] addr = IPEntry.AddressList;

            foreach (var host in IPSegment.Hosts())
            {
                var IP = host.ToIPString();
                if (IP == addr[addr.Length - 2].ToString())
                {
                    rpta = true;
                    break;
                }
            }

            return rpta;
        }

        #endregion

        #region Eventos

        protected void Page_Load(object sender, EventArgs e)
        {

        }


        protected void btn_marcar_Entrada_Click(object sender, EventArgs e)
        {
            if (GetIPAddress())
            {
                WCF_Gimnasio.cls_Marcas marca = new WCF_Gimnasio.cls_Marcas()
                {
                    IdUsuarioInicioSeccion = Convert.ToInt32(HttpContext.Current.Session["idUsuario"].ToString()),
                    IdEmpleado = Convert.ToInt32(HttpContext.Current.Session["idUsuario"].ToString()),
                    HoraEntrada = DateTime.Now.TimeOfDay,
                };

                DataTable dt = _servicio.Listar(1, marca).Tables[0];
                var estado = dt.Rows[0][0].ToString();

                if (estado != "")
                {
                    if (Convert.ToInt32(estado) == 5)
                    {
                        if (Session["MarcaEntrada"] == null)
                        {
                            Session["MarcaEntrada"] = false;

                            string mensajeError = string.Empty;
                            _servicio.InsertarActualizarRegistro(true, ref mensajeError, marca);

                            string script = "<script type='text/javascript'> smoke.alert('Se ha realizado el proceso con exito.', function (e) {}, {ok: 'OK',classname: 'custom-class'}); </script>";
                            ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", script, false);

                            Response.Redirect("wbfrm_index.aspx");
                        }

                        else
                        {
                            string script = "<script type='text/javascript'> smoke.alert('No puede realizar dos marcas de entrada.', function (e) {}, {ok: 'OK',classname: 'custom-class'}); </script>";
                            ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", script, false);
                        }
                    }

                    else
                    {
                        string script = "<script type='text/javascript'> smoke.alert('No se puede realizar el proceso, porque el empleado ya no pertenece a la planilla de la compañia.', function (e) {}, {ok: 'OK',classname: 'custom-class'}); </script>";
                        ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", script, false);
                    }
                }

                else
                {
                    string script = "<script type='text/javascript'> smoke.alert('No se puede realizar el proceso, porque el empleado ya no pertenece a la planilla de la compañia.', function (e) {}, {ok: 'OK',classname: 'custom-class'}); </script>";
                    ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", script, false);
                }
            }

            else
            {
                string script = "<script type='text/javascript'> smoke.alert('No se realizar la marca, sino es uno de los equipos de la compañia', function (e) {}, {ok: 'OK',classname: 'custom-class'}); </script>";
                ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", script, false);
            }
        }

        protected void btn_marcar_Salida_Click(object sender, EventArgs e)
        {
            if (GetIPAddress())
            {
                if (Session["MarcaEntrada"] != null)
                {
                    WCF_Gimnasio.cls_Marcas marca = new WCF_Gimnasio.cls_Marcas()
                    {
                        IdUsuarioInicioSeccion = Convert.ToInt32(HttpContext.Current.Session["idUsuario"].ToString()),
                        IdEmpleado = Convert.ToInt32(HttpContext.Current.Session["idUsuario"].ToString()),
                        HoraSalida = DateTime.Now.TimeOfDay,
                    };

                    DataTable dt = _servicio.Listar(1, marca).Tables[0];
                    var estado = dt.Rows[0][0].ToString();

                    if (estado != "")
                    {
                        if (Convert.ToInt32(estado) == 5)
                        {
                            var marcarEntrada = Convert.ToBoolean(Session["MarcaEntrada"]);
                            if (!marcarEntrada)
                            {
                                string mensajeError = string.Empty;
                                _servicio.InsertarActualizarRegistro(false, ref mensajeError, marca);

                                string script = "<script type='text/javascript'> smoke.alert('Se ha realizado el proceso con exito.', function (e) {}, {ok: 'OK',classname: 'custom-class'}); </script>";
                                ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", script, false);

                                Response.Redirect("wbfrm_index.aspx");
                            }

                            else
                            {
                                string script = "<script type='text/javascript'> smoke.alert('No se puede realizar el proceso, debido que debe marcar la entrada.', function (e) {}, {ok: 'OK',classname: 'custom-class'}); </script>";
                                ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", script, false);
                            }
                        }

                        else
                        {
                            string script = "<script type='text/javascript'> smoke.alert('No se puede realizar el proceso, porque el empleado ya no pertenece a la planilla de la compañia.', function (e) {}, {ok: 'OK',classname: 'custom-class'}); </script>";
                            ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", script, false);
                        }
                    }

                    else
                    {
                        string script = "<script type='text/javascript'> smoke.alert('No se puede realizar el proceso, porque el empleado ya no pertenece a la planilla de la compañia.', function (e) {}, {ok: 'OK',classname: 'custom-class'}); </script>";
                        ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", script, false);
                    }
                }

                else
                {
                    string script = "<script type='text/javascript'> smoke.alert('No se puede realizar el proceso, debido que debe marcar la entrada.', function (e) {}, {ok: 'OK',classname: 'custom-class'}); </script>";
                    ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", script, false);
                }
            }

            else
            {
                string script = "<script type='text/javascript'> smoke.alert('No se realizar la marca, sino es uno de los equipos de la compañia', function (e) {}, {ok: 'OK',classname: 'custom-class'}); </script>";
                ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", script, false);
            }
        }

        #endregion

    }
}